package com.ruoyi.subject.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excels;

import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.sys.domain.SysFiles;

/**
 * 课题项目对象 subject_task
 * 
 * @author yepanpan
 * @date 2021-03-15
 */

@ApiModel("课题项目实体")
@Data
public class SubjectTask extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增长主键ID */
    @ApiModelProperty("${comment}")
    private Long id;

    /** 课题分类 */
    @ApiModelProperty("课题分类")
    private Long cateId;
    @Excel(name = "课题分类")
    private String cateName;

    private SubjectCategory cate;

    /** 项目名称 */
    @Excel(name = "项目名称")
    @ApiModelProperty("项目名称")
    private String name;

    /** 级别 */
    @Excel(name = "级别", dictType = "base_level")
    @ApiModelProperty("级别")
    private String level;

    /** 类型 */
    @Excel(name = "类型", dictType = "subject_type")
    @ApiModelProperty("类型")
    private String type;

    /** 课题说明 */
    @Excel(name = "课题说明")
    @ApiModelProperty("课题说明")
    private String comment;

    /** 预期成果 */
    @Excel(name = "预期成果")
    @ApiModelProperty("预期成果")
    private String results;

    /** 项目负责人 */
    @ApiModelProperty("项目负责人")
    private Long masterUserId;
    @Excels({
    	@Excel(name = "项目负责人", targetAttr = "nickName")
    })
    private SysUser masterUser;


    /** 其它参与人员 */
    @ApiModelProperty("其它参与人员")
    private String userIds;
    private Long userId[];
    private String userNames;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("开始时间")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("结束时间")
    private Date finishTime;

    /** 经费预算 */
    @Excel(name = "经费预算")
    @ApiModelProperty("经费预算")
    private BigDecimal budget;

    /** 经费来源 */
    @Excel(name = "经费来源")
    @ApiModelProperty("经费来源")
    private String budgetSource;

    /** 当前进度 */
    @Excel(name = "当前进度", dictType = "judge_type")
    @ApiModelProperty("当前进度")
    private String progress;

    /** 完成情况 */
    @Excel(name = "完成情况", dictType = "check_status")
    @ApiModelProperty("完成情况")
    private String progressStatus;
    
    /** 是否结题 */
    @Excel(name = "是否结题", dictType = "sys_yes_no")
    @ApiModelProperty("是否结题")
    private String completeStatus;

    /** 申报文件 */
    @ApiModelProperty("申报文件")
    private Long applyFileId;
    private SysFiles applyFile;

    /** 开题文件 */
    @ApiModelProperty("开题文件")
    private Long beginFileId;
    private SysFiles beginFile;

    /** 中期评审文件 */
    @ApiModelProperty("中期评审文件")
    private Long judgeFileId;
    private SysFiles judgeFile;

    /** 结题文件 */
    @ApiModelProperty("结题文件")
    private Long completeFileId;
    private SysFiles completeFile;


}
